function LL = Full_Likelihood(initial,DP,I_N,A,R,TG,MON,params,rp,snPass,stage)

if rp.cc~=Inf
    if stage==1
        cvec        = [initial(1:3),params(4:8)];
        initr       = coefftran(cvec,0);
    
    elseif stage==2
        cvec        = [params(1:3),initial(1:2),params(6:8)];
        initr       = coefftran(cvec,0);

    else
        cvec        = [params(1:5),initial(1:3)];
        initr       = coefftran(cvec,0);
    
    end
else
    cvec        = initial;
    initr       = coefftran(cvec,0);
end

muT         = initr(1);
sigmaT      = initr(2);
rho         = initr(3);
sigmaF0     = initr(4);
sigmaF1     = initr(5);
muF         = initr(6);
ftreat      = initr(7);
fmoni       = initr(8);

[muT,sigmaT,rho,sigmaF0,sigmaF1,muF,ftreat,fmoni]

obs    =  length(DP);

PartProb = zeros(obs,1);
Npdf     = zeros(obs,51);


mu_F_P  = muF + (ftreat .* TG);
mu_F_TS = muF + (fmoni .* MON);

if rp.parl==1
    parfor i=1:obs
        [PartProb(i),Npdf(i,:)] = Full_Profit(muT,sigmaT,sigmaF0,sigmaF1,rho,mu_F_P(i),mu_F_TS(i),A(i),R(i),TG(i),rp,snPass,i);
    end
else
    for i=1:obs
        [PartProb(i),Npdf(i,:)] = Full_Profit(muT,sigmaT,sigmaF0,sigmaF1,rho,mu_F_P(i),mu_F_TS(i),A(i),R(i),TG(i),rp,snPass,i);
    end
end

LLi = (1-DP).*log(1-PartProb+rp.tol)+DP.*log(PartProb+rp.tol)+DP.*sum(I_N.*log(Npdf+rp.tol),2);
LL  = -sum(LLi,1);